package cc.linker.steplink.crm.merchant.controller.acs;

import cc.linker.steplink.crm.commons.model.PcUserInfo;
import cc.linker.steplink.crm.merchant.service.acs.WindowService;
import cc.linker.steplink.crm.merchanth5.commons.UserInfoUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

/**
 * @Description: 机构浮窗
 * @Author: ch
 * @Date: 2020/10/30 9:52
 * @Version: v1.12.12
 */
@RestController
@RequestMapping("/window")
public class WindowController {

    @Autowired
    private WindowService windowService;
    @Autowired
    private UserInfoUtil userInfoUtil;
    @Autowired
    private StringRedisTemplate stringRedisTemplate;

    /**
     * @Description: 获取浮窗详情
     * @Param: [request]
     * @Return: java.lang.Object
     * @Author: ch
     * @Date: 2020/10/30 13:24
     * @Version: v1.12.12
     **/
    @GetMapping("/getInfo")
    public Object getInfo(HttpServletRequest request){
        PcUserInfo userinfo = userInfoUtil.getPcUserInfo(request);
        String orgId = userinfo.getOrgId();
        return windowService.getInfo(orgId);
    }

    /**
     * @Description: 浮窗保存
     * @Param: id ： 浮窗id
     * @Param: isOpen ： 是否开启 0未开启 1已开启
     * @Param: beforeIcon ： 展开前图标
     * @Param: afterIcon ： 展开后图标
     * @Param: usePages ： 应用页面1人中心、2购物车、3商品分组、4商品详情、5报名详情、6知识商品详情、7自定义页面
     * @Param: pageIds ： 自定义页面id（应用页面包含自定义页面时）
     * @Param: subs ：浮窗子入口列表
     * @Param:           title ：浮窗子入口名称
     * @Param:           icon ：浮窗子入口图标
     * @Param:           url ：浮窗子入口链接
     * @Param:           independent ：是否是独立入口 0不是 1 是
     * @Param:           isChecked ：是否选中 0不是 1 是
     * @Return: void
     * @Author: ch
     * @Date: 2020/10/30 11:24
     * @Version: v1.12.12
     **/
    @PostMapping("/save")
    public Object save(@RequestBody Map<String, Object> param, HttpServletRequest request){
        PcUserInfo userinfo = userInfoUtil.getPcUserInfo(request);
        String orgId = userinfo.getOrgId();
        param.put("orgId", orgId);
        return windowService.save(param);
//        stringRedisTemplate.delete("window:windowInfo_" + orgId);
    }


    /**
     * @Description: 浮窗开关保存
     * @Param: id ： 浮窗id
     * @Param: isOpen ： 是否开启 0未开启 1已开启
     * @Return: void
     * @Author: ch
     * @Date: 2020/10/30 11:24
     * @Version: v1.12.12
     **/
    @PostMapping("/updateIsOpen")
    public Object updateIsOpen(@RequestBody Map<String, Object> param, HttpServletRequest request){
        PcUserInfo userinfo = userInfoUtil.getPcUserInfo(request);
        String orgId = userinfo.getOrgId();
        param.put("orgId", orgId);
        return windowService.updateIsOpen(param);
//        stringRedisTemplate.delete("window:windowInfo_" + orgId);
    }

    /**
     * @Description: 获取自定义页面
     * @Param: [request]
     * @Return: java.lang.Object
     * @Author: ch
     * @Date: 2020/10/30 13:24
     * @Version: v1.12.12
     **/
    @GetMapping("/getPages")
    public List<Map> getPages(HttpServletRequest request){
        PcUserInfo userinfo = userInfoUtil.getPcUserInfo(request);
        String orgId = userinfo.getOrgId();
        return windowService.getPages(orgId);
    }
}
